home *** CD-ROM | disk | FTP | other *** search
- /* Copyrighted Pixar 1989 */
- /* From the RenderMan Companion p.370 */
- /* Listing 16.27 Displacement shader with catenary droop in y*/
-
- /*
- * droop(): a displacement shader for making a surface "sag" along t.
- */
- #define M_E 2.7182818284590452354 /* e */
-
- displacement
- k3d_droop (
- float Km = 0.05 )
- {
- float droop, yDel;
-
- droop = (t-.5)*2; /* t in [0,1] goes to droop in [-1,1] */
-
- yDel = -Km * ( M_E + (1/M_E) - (exp(droop)+exp(-droop)) );
- setycomp(P, ycomp(P) + yDel);
- N = calculatenormal(P);
- }
-